System and Method for Scheduling Clips

ABSTRACT

Disclosed is a system and method for scheduling clips. An example method involves (i) accessing a first list that includes ordered clip identifiers C 1  . . . C n ; (ii) accessing a second list that includes a player identifier P q ; (iii) accessing a third list that includes player identifiers P 1  . . . P x ; (iv) making a determination that a particular clip identifier from the clip identifiers C 1  . . . C n  is associated with a property; (v) responsive to making the determination, assigning to the particular clip identifier, the player identifier P q ; (vi) assigning to each clip identifier C 1  . . . C n  except for the particular clip identifier, a respective one of the player identifiers P 1  . . . P x ,wherein the player identifiers are selected in an ordered and looping fashion; and (vii) for each of the clip identifiers C 1  . . . C n , causing a player identified by the one of the player identifiers P q  or P 1  . . . P x  assigned to that clip identifier to load a clip identified by that clip identifier.

RELATED DISCLOSURE

This disclosure is a continuation of U.S. patent application Ser. No.14/209,029 filed on Mar. 13, 2014, which is hereby incorporated byreference herein in its entirety

USAGE AND TERMINOLOGY

Throughout this application, with respect to all reasonable derivativesof such terms, and unless otherwise specified (and/or unless theparticular context clearly dictates otherwise), each usage of:

-   -   “a” or “an” means at least one.    -   “the” means the at least one.    -   “video” means any material represented in a video format (i.e.,        having multiple frames). In some instances, video may include        multiple sequential frames that are identical or nearly        identical, and that may give the impression of a still image.        Video may or may not include an audio portion.    -   “clip” means a portion of video.    -   “player” means a video player.

TECHNICAL FIELD

The disclosed system and method relate generally to scheduling clips,such as in connection with a news production system.

BACKGROUND

Unless otherwise indicated herein, the materials described in thissection are not prior art to the claims in this disclosure and are notadmitted to be prior art by inclusion in this section.

A news production system (NPS) may facilitate the production of a newsprogram for television broadcast. In this context, the news program maybe produced in accordance with a “rundown.” Generally, a rundown is aschedule of events (and related information) that make up a newsprogram. For instance, a rundown may indicate that various clips are tobe loaded and played out by a player in a particular order so that theclips may be part of the news program.

For a variety of reasons, it may take several seconds for a player toload a clip. Also, a player may be configured such that it may eitherload or playout a clip (but not both together) at any given time.Therefore, there may be a delay between the time that a particularplayer finishes playing out a first clip and the time that the playermay begin playing out a second clip (i.e., to allow the playersufficient time to load the second clip). Such a delay may beproblematic, such as where a rundown indicates that the second clipshould be played out immediately after the first clip (i.e., without anyintervening delay).

SUMMARY

In one aspect, an example method involves (i) accessing a first listthat includes ordered clip identifiers C₁ . . . C_(n); (ii) accessing asecond list that includes a player identifier P_(q); (iii) accessing athird list that includes player identifiers P₁ . . . P_(x); (iv) makinga determination that a particular clip identifier from the clipidentifiers C₁ . . . C_(n) is associated with a particular property; (v)responsive to making the determination, assigning to the particular clipidentifier, the player identifier P_(q); (vi) assigning to each clipidentifier C₁ . . . C_(n) except for the particular clip identifier, arespective one of the player identifiers P₁ . . . P_(x), wherein therespective ones of the player identifiers are selected in an ordered andlooping fashion; and (vii) for each of the clip identifiers C₁ . . .C_(n), causing a player identified by the one of the player identifiersP_(q) or P₁ . . . P_(x) assigned to that clip identifier to load a clipidentified by that clip identifier.

In another aspect, an example system includes a first set of players; asecond set of players; and a non-transitory computer-readable mediumincluding a set of program instructions, that when executed, causeperformance of a set of functions comprising (i) accessing a first listthat includes ordered clip identifiers C₁ . . . C_(n); (ii) accessing asecond list that includes player identifier P_(q), wherein the playeridentifier P_(q) corresponds with one of the players in the first set ofplayers; (iii) accessing a third list that includes player identifiersP₁ . . . P_(x), wherein each player identifier P₁ . . . P_(x)corresponds with a respective one of the players in the second set ofplayers; (iv) making a determination that a particular clip identifierfrom the clip identifiers C₁ . . . C_(n) is associated with a particularproperty; (v) responsive to making the determination, assigning to theparticular clip identifier the player identifier P_(q); (vi) assigningto each clip identifier C₁ . . . C_(n) except for the particular clipidentifier, a respective one of the player identifiers P₁ . . . P_(x),wherein the respective ones of the player identifiers are selected in anordered and looping fashion; and (vii) for each of the clip identifiersC₁ . . . C_(n), causing the one of the players identified by the one ofthe player identifiers P_(q) or P₁ . . . P_(x) assigned to that clipidentifier to load a clip identified by that clip identifier.

In another aspect, an example method involves: (i) accessing a firstlist that includes ordered clip identifiers C₁ . . . C_(n); (ii)accessing a second list that includes player identifiers P₁ . . . P_(x);(iii) making a determination that a particular clip identifier from theclip identifiers C₁ . . . C_(n) is associated with a particularproperty; (iv) responsive to making the determination, assigning to theparticular clip identifier, a particular one of the player identifiersP₁ . . . P_(x); (v) assigning to each clip identifier C₁ . . . C_(n)except for the particular clip identifier, a respective one of theplayer identifiers P₁ . . . P_(x) except for the particular playeridentifier, wherein the respective ones of the player identifiers areselected in an ordered and looping fashion; and (vi) for each of theclip identifiers C₁ . . . C_(n), causing a player identified by the oneof the player identifiers P₁ . . . P_(x), assigned to that clipidentifier to load a clip identified by that clip identifier.

In another aspect, an example system includes multiple players and anon-transitory computer-readable medium including a set of programinstructions, that when executed, cause performance of a set offunctions comprising (i) accessing a first list that includes orderedclip identifiers C₁ . . . C_(n); (ii) accessing a second list thatincludes player identifiers P₁ . . . P_(x), wherein each playeridentifier P₁ . . . P_(x) corresponds with a respective one of theplayers; (iii) making a determination that a particular clip identifierfrom the clip identifiers C₁ . . . C_(n) is associated with a particularproperty; (iv) responsive to making the determination, assigning to theparticular clip identifier, a particular one of the player identifiersP₁ . . . P_(x); (v) assigning to each clip identifier C₁ . . . C_(n)except for the particular clip identifier, a respective one of theplayer identifiers P₁ . . . P_(x) except for the particular playeridentifier, wherein the respective ones of the player identifiers areselected in an ordered and looping fashion; and (vi) for each of theclip identifiers C₁ . . . C_(n), causing the one of the playersidentified by the one of the player identifiers P₁ . . . P_(x) assignedto that clip identifier to load a clip identified by that clipidentifier.

These, as well as other aspects, advantages, and alternatives, willbecome apparent to those of ordinary skill in the art by reading thefollowing detailed description, with reference where appropriate to theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified diagram of an example NPS.

FIG. 2 is a simplified diagram of an example device.

FIG. 3A is a diagram of an example rundown in a first state.

FIG. 3B is a diagram of the example rundown of FIG. 3A, in a secondstate.

FIG. 3C is a diagram of the example rundown of FIG. 3A, in a thirdstate.

FIG. 3D is a diagram of the example rundown of FIG. 3A, in a fourthstate.

FIG. 4 is a flowchart showing functions of an example of the disclosedmethod.

FIG. 5 is a flowchart showing functions of another example of thedisclosed method.

DETAILED DESCRIPTION OF THE DRAWINGS I. Overview

As discussed above, in the context of an NPS, there may be a delaybetween the time that a particular player finishes playing out a firstclip and the time that the player may begin playing out a second clip.To help address this issue, an NPS may use multiple players to load andplayout clips indicated in a rundown.

With this configuration, a user may assign to each clip, a respectiveplayer in such a manner so as to reduce or avoid the delay issuediscussed above. Note that in a rundown, players may be identified byplayer identifiers and clips may be identified by clip identifiers. Assuch, the process of a user assigning a player to a clip may involve theuser editing the rundown to indicate that a particular player identifieris assigned to a particular clip identifier.

To illustrate how a user may assign player identifiers to clipidentifiers in a manner that reduces or avoids the delay issue discussedabove, consider an NPS that includes two players, and therefore twoplayer identifiers. In this instance, a user may assign to clipidentifiers in a rundown, one of the two player identifiers, with theplayer identifiers being selected in an alternating fashion. Therefore,while a first player is playing out a first clip, a second player mayload a second clip. And when the first player finishes playing out thefirst clip, the second player may immediately start playing out thesecond clip. This process may be repeated such that each pair of orderedclips may be played out in order and without any intervening delay.

In some cases, such as where the first clip has a short duration, it maytake longer for the second player to load the second clip than it takesfor the first player to playout the first clip. Therefore, in someinstances an NPS may need to use three or more players to reduce oravoid the delay issue discussed above. In such instances, playeridentifiers may be selected in an ordered and looping fashion as theyare assigned to clip identifiers.

To illustrate this, consider an NPS having three players, and thereforethree player identifier, namely P₁, P₂, and P₃, and further considerthat each of seven ordered clip identifiers, namely C₁, C₂, C₃, C₄, C₅,C₆, and C₇ needs to be assigned a corresponding player identifier. Byselecting player identifiers in an ordered and looping fashion as theyare assigned to clip identifiers, clip identifiers may be assignedplayer identifiers such that: C₁ is assigned P₁, C₂ is assigned P₂, C₃is assigned P₃, C₄ is assigned P₁, C₅ is assigned P₂, C₆ is assigned P₃,and C₇ is assigned P₁.

Notably though, even after the player identifiers have been assigned tothe clip identifiers, the rundown may again be edited. In someinstances, the rundown may even be edited while the news program isbeing produced. And this can present certain timing-related issues.

For instance, consider that a news program is being produced inaccordance with the seven assignments provided above. Further considerthat while the player identified by the player identifier P₃ is playingout the clip identified by the clip identifier C₃, the rundown ismodified by moving the clip identified C₆ up two spots in the order suchthat the order of clip identifiers is changed to C₁, C₂, C₃, C₆, C₄, C₅,and C₇.

With this change, the same player identifier P₃ is assigned to twoconsecutive clip identifiers, namely C₃ and C₆. As noted above, a playermay be configured such that it may either load or playout a clip (butnot both together) at any given time. As such, as a result of therundown being edited in this manner, once the player identified by theplayer identifier P₃ plays out the clip identified by the clipidentifier C₃, the player needs some time to load the clip identified bythe clip identifier C₆ before it can playout that clip. This delay maybe undesirable.

Examples of the disclosed system and method may help address the delayand player assignment issues discussed above by improving the manner inwhich players are assigned to clips.

As disclosed herein, an example method may involve accessing a firstlist that includes ordered clip identifiers accessing a second list thatincludes a player identifiers P_(q), and accessing a third list thatincludes player identifiers P₁ . . . P_(x). For instance, this mayinvolve accessing a rundown that includes ordered clip identifiers C₁ .. . C₇, accessing a list that includes a player identifier P₄, andaccessing a list that includes player identifiers P₁ . . . P₃.

Further, the method may involve making a determination that a particularclip identifier from the clip identifiers C₁ . . . C_(n) is associatedwith a particular property, and responsive to making the determination,assigning to the particular clip identifier, the player identifierP_(q). For instance, this may involve making a determination that theclip identifier C₆ is associated with a particular property, andresponsive to making the determination, assigning to the particular clipidentifier C₆, the player identifier P₄.

Further, the method may involve assigning to each clip identifier C₁ . .. C_(n) except for the particular clip identifier, a respective one ofthe player identifiers P₁ . . . P_(x), wherein the respective ones ofthe player identifiers are selected in an ordered and looping fashion.For instance, this may involve assigning to each clip identifier C₁ . .. C₅ and C₇ a respective one of the player identifiers P₁ . . . P₃,wherein the respective ones of the player identifiers P₁ . . . P₃ areselected in an ordered and looping fashion such that: C₁ is assigned P₁,C₂ is assigned P₂, C₃ is assigned P₃, C₄ is assigned P₁, C₅ is assignedP₂, and C₇ is assigned P₃.

Now consider that the rundown is modified as in the example providedabove such that the order of clip identifiers is changed to C₁, C₂, C₃,C₆, C₄, C₅, and C₇. However, unlike the example provided above where thetraditional scheduling approach was employed, the modified rundown doesnot result in a single player identifier being assigned to the twoconsecutive clip identifiers C₃, C₆. As a result, the clips identifiedby the clips identifiers C₃ and C₆ may be played out without anyintervening delay. For at least this reason, the disclosed system andmethod improves upon the traditional approach described above.

Also, in some examples, the method may involve responsive to making thedetermination that the particular clip identifier is associated with theparticular property, causing the clip identified by the particular clipidentifier to be loaded into the player identified by the particularplayer identifier. In some instances, the method may involve responsiveto making the determination, causing the clip identified by theparticular clip identifier to be loaded into the player identified bythe particular player identifier proximate a time that the determinationis made. This may allow the clip identified by the particular clipidentifier to be played upon request and without a loading delay.

While in one example, the disclosed method may be implemented inconnection with a NPS and a news program, the disclosed method may alsobe implemented in connection with other types of systems and with othertypes of programs or other video. For instance, in one example, thedisclosed method may be implemented in connection with a master controlsystem.

II. Example NPS

FIG. 1 is a simplified block diagram of an example NPS 100. The NPS 100may be configured to perform a variety of functions related to producinga news program. The NPS 100 may output the news program in video form,which in turn may be sent to a broadcasting system for broadcast (e.g.,via an over-the-air television broadcast or an Internet feed). It isunderstood that the video output from the NPS 100 may be subjected toadditional processing before being broadcast. For example, the video maybe modified with a DVE before being broadcast.

The NPS 100 may include one or more devices, including for example ascheduling system 102, a player controller 104, a data storage 106, oneor more players 108 a-d, a router 112, and a production switcher 114.Note that the NPS 100 need not include all of these devices and it mayinclude additional devices.

Generally, the scheduling system 102 is configured to perform functionsrelated to scheduling and managing the production of a news program, andthe player controller 104 is configured to perform functions related tocontrolling the players 108 a-d and the router 112.

Generally, each player 108 a-d is configured to perform functionsrelated to loading and/or playing out a clip. Each player 108 a-d maytake a variety of forms. For instance, each player 108 a-d may take theform of a video player device or a software-based video player executingon a computing device. An example of a player is the K2 server providedby Grass Valley™ of San Francisco, Calif.

Generally the router 112 is configured to perform functions related toinput-to-output mappings, and the production switcher 114 is configuredto perform functions related to input-to-output mapping and runningDVEs.

These devices may communicate with each other and/or with externaldevices via one or more communication paths. For example, the schedulingsystem 102 and the player controller 104 may communicate via path 116,the player controller 104 and the players 108 a-d may communicate viarespective paths 118 a-d, and the players 108 a-d and the data storage106 may communicate via respective paths 120 a-d. Further, the players108 a-d and the router 112 may communicate via respective paths 122 a-d,and the router 112 and the production switcher 114 may communicate viarespective paths 126 a-d. Still further, the scheduling system 102 andthe router 112 may communicate via path 128, the scheduling system 102and the production system 114 may communicate via path 130, and theproduction switcher 114 may communicate with a device outside of the NPS100, such as a television broadcasting system, via a path 132.

These devices may communicate with each other and/or with externaldevices according to one or more protocols. For example, the devices maycommunicate in accordance with one or more versions of the Media ObjectServer (MOS) protocol.

FIG. 2 is a simplified block diagram of a device 200. The device 200 maytake a variety of forms, including for example the scheduling system102, the player controller 104, the data storage 106, one of the players108 a-d, the router 112, or the production switcher 114.

The device 200 may include various components, including for example, auser-interface 202, a communication interface 204, a processor 206, anda data storage 208, all of which may be electronically connected to eachother via a system bus or other connection mechanism 210. Note that thedevice 200 need not include all of these components and it may includeadditional components.

The user-interface 202 may function to allow the device 200 to interactwith a user, such as to receive input from a user and to provide outputto the user. Thus, the user-interface 202 may include input componentssuch as a computer mouse, a keyboard, or a touch-sensitive panel. Theuser-interface 202 may also include output components such as a displayscreen (which, for example, may be combined with a touch-sensitivepanel) or a speaker.

The communication interface 204 may function to allow the device 200 tocommunicate with other devices. In one example, the communicationinterface 204 may take the form of a wired interface, such as anEthernet port, USB port, or High-Definition Multimedia Interface (HDMI)port. As another example, the communication interface 204 may take theform of a wireless interface, such as a WiFi interface. In either case,the communication interface 204 may include communication input and/orcommunication output interfaces.

The processor 206 may include one or more general purpose processors(e.g., microprocessors) and/or one or more special purpose processors(e.g., digital signal processors (DSPs)).

The data storage 208 may include one or more volatile and/ornon-volatile storage components, such as magnetic, optical, flash, ororganic storage, and may be integrated in whole or in part with theprocessor 206. The data storage 208 may include removable and/ornon-removable components. In some examples, the data storage 208 mayinclude multiple storage drives that store data in a redundant and/orstripped configuration.

Generally, the processor 206 may be configured to execute programinstructions (e.g., compiled or non-compiled program logic and/ormachine code) stored in the data storage 208 to perform one or more ofthe functions described herein and/or shown in the accompanyingdrawings. As such, the data storage 208 may take the form of anon-transitory computer-readable storage medium, having stored thereonprogram instructions that, upon execution by the processor 206, causethe device 200 to perform one or more of the functions described hereinand/or shown in the accompanying drawings.

III. Example Rundown

FIG. 3A shows portions of an example rundown 300 for a news program. Therundown 300 includes ordered rundown entries, each represented as aseparate row. Each rundown entry includes one or more attributes, suchas a title, a clip identifier, a player identifier, and/or a reservedplayer request as shown in the respective columns. For example, thefirst rundown entry has a title “Clip 1” and a clip identifier “C₁.” Asanother example, the fourth rundown entry has a title “Clip 4.” As yetanother example, the sixth rundown entry has a title “Clip 6,” a clipidentifier “C₆,” and a reserved player request (in the form of an “X” inthe appropriate field) indicating that a reserved player is requested tobe assigned to Clip 6 as described in greater detail below). Note thatthese attributes may be represented in a variety of different manners.

In one example, a user may create the rundown 300 via a user interfaceof a scheduling system and store the rundown in a data storage of thescheduling system. As such, by utilizing the rundown 300, the user mayindicate an order of clips to be played out for use in the news program.

Notably, each of FIGS. 3A-3D shows the rundown 300 in a different state.For instance, FIG. 3A shows the rundown in a first state where playeridentifiers have not yet been added to the rundown. The additionalstates of the rundown as shown in FIGS. 3B-3D are described below inconjunction with examples of the disclosed method.

It should also be noted that the rundown 300 has been greatly simplifiedfor the purposes of providing examples of the disclosed system andmethod. In practice, a rundown is likely, although not required, toinclude significantly more data. For example, a rundown may includeadditional rundown entries that correspond to events other than playingout clips. Such rundown entries may be arranged before, after, or inbetween the example rundown entries described above. Further, in someinstances, a given rundown entry may correspond to multiple events. Assuch, in one example, a rundown entry may include multiple clipidentifiers (and corresponding assigned player identifiers).

In addition, a rundown may include commercial break markers that dividethe rundown into multiple blocks. As another example, rundown entriesmay include additional attributes, including for example, an index or“page” number, an estimated duration, an actual duration, and/or anauthor. Further, each rundown entry may include a script that, whenexecuted, causes certain NPS-related functions to be performed. Also, insome instances, a rundown entry may include multiple clip identifiers,respective player identifiers, and/or respective reserved playerrequests. However, as noted above, for the sake of simplicity, thesimplified rundown 300 is provided herein.

III. Example Operations

An example of the disclosed method will now be described principally inconnection with a NPS and a news program. However, as noted above, thedisclosed method can extend to apply with respect to other types ofsystems and other types of programs or other video. For instance, thedisclosed method may be applied with respect to a master control system.

FIG. 4 is a flowchart showing functions of an example of the disclosedmethod. At block 402, the method may involve accessing (e.g., from alocal or remote data storage) a first list that includes ordered clipidentifiers C₁ . . . C_(n). For example, as shown in FIG. 3A, this mayinvolve the scheduling system 102 accessing the rundown 300 thatincludes ordered clip identifiers C₁ . . . C₇. In one example, thescheduling system 102 may access the rundown 300 from a data storage.

At block 404, the method may involve accessing (e.g., from a local orremote data storage) a second list that includes a player identifierP_(q). For example, this may involve the scheduling system 102 accessinga list that includes the player identifier P₄ that identifies the player108 d.

At block 406, the method may involve accessing a third list thatincludes player identifiers P₁ . . . P_(x). For example, this mayinvolve the scheduling system 102 accessing a list of player identifiersP₁ . . . P₃, where each identifier identifies one of the players 108a-c. For instance, the player identifiers P₁, P₂, and P₃ may identifyplayers 108 a, 108 b, and 108 c, respectively. In one example, thescheduling system 102 may access the list of the player identifier P₄and/or the list of player identifiers P₁ . . . P₃ from a data storage.

At block 408, the method may involve making a determination that aparticular clip identifier from the clip identifiers C₁ . . . C_(n) isassociated with a particular property. For instance, this may involvethe scheduling system 102 making a determination that the clipidentifier C₆ is associated with a particular property (i.e.,characteristic), namely that the associated rundown entry includes areserved player request. Such a request may be provided (e.g., in theform of an “X” in an appropriate field of the rundown entry) by a userwhen creating the rundown so as to indicate that a player should bereserved for the purposes of being assigned to the associated clip. Insome instances, the user may indicate this request when the userdetermines that there is a strong likelihood that that clip will berequested to be played out with little or no notice. Note that in someinstances, the user may indicate this request before the clip is evenavailable (in which case the clip identifier may effectively serve as aplaceholder). Note that other properties and/or other manners ofindicating a reserved player request may also be considered or used inconnection with the function at block 408.

At block 410, the method may involve responsive to making thedetermination, assigning to the particular clip identifier, the playeridentifier P_(q). For instance, as shown in FIG. 3B, this may involveresponsive to making the determination that the rundown entry associatedwith the clip identifier C₆ includes a reserved player request,assigning the player identifier P₄ to the clip identifier C₆. Note thatthe player identifier P₄ is used merely as an example. In anotherexample, the second list may include additional player identifiers andsuch player identifiers may be used in this context as desired.

At block 412, the method may involve assigning to each clip identifierC₁ . . . C_(n) except for the particular clip identifier, a respectiveone of the player identifiers P₁ . . . P_(x), wherein the respectiveones of the player identifiers are selected in an ordered and loopingfashion. For instance, as shown in FIG. 3C, this may involve assigningto each clip identifier C₁ . . . C₅ and C₅ a respective one of theplayer identifiers P₁ . . . P₃, wherein the respective ones of theplayer identifiers are selected in an ordered and looping fashion. Moreparticularly, this may involve assigning player identifiers to clipidentifiers such that: C₁ is assigned P₁, C₂ is assigned P₂, C₃ isassigned P₃, C₄ is assigned P₁, C₅ is assigned P₂, and C₇ is assignedP₃.

Note that the act of assigning player identifiers selected in an orderedand looping fashion can take a variety of forms. For instance, theplayer identifiers may be selected in either a standard or reversed“ordered and looping” fashion. Further, when selecting playeridentifiers in this manner, the looping may “reset” for various reasons,such as after each commercial break in the rundown is encountered.Details concerning some example manners in which player identifiers maybe selected in an ordered and looping fashion are described in U.S. Pat.Appl. No. (Attorney Docket No. 13-724) entitled “SYSTEM AND METHOD FORSCHEDULING CLIPS” and U.S. Pat. Appl. No. (Attorney Docket No. 13-725)entitled “SYSTEM AND METHOD FOR SCHEDULING CLIPS,” both of which arebeing filed by Applicant simultaneously with the filing of thisdisclosure. Also, in some embodiments, the respective ones of the playeridentifiers are selected in another fashion (i.e., not in an ordered andlooping fashion).

In some instances, one or more of the functions described above may berepeated. For example, where multiple clip identifiers are associatedwith a particular property, the method may involve making adetermination that multiple particular clip identifiers are associatedwith the particular property, and in response, performing the functionat block 408 for each of the multiple particular clip identifiers. Thismay allow each of multiple clips to be loaded and playout out of arespective player reserved for that purpose.

At block 414, the method may involve for each of the clip identifiers C₁. . . C_(n), causing a player identified by the one of the playeridentifiers P_(x) or P₁ . . . P_(x) assigned to that clip identifier toload a clip identified by that clip identifier. For instance, this mayinvolve for each of the clip identifiers C₁ . . . C₇, the schedulingsystem 102 causing a player identified by the one of the playeridentifiers P₄ or P₁ . . . P₃ assigned to that clip identifier to load aclip identified by that clip identifier.

In one example, the function at block 414 may involve for each of theclip identifiers C₁ . . . C_(n), the scheduling system 102 sending thatclip identifier and the respectively assigned player identifier to theplayer controller 104. In turn, the player controller 104 may (i) mapthe player identifiers to the players 108 a-d, (ii) map the clipidentifiers to clips, and (iii) cause the players 108 a-d to load therespective, mapped clips. The player controller 104 may cause theplayers 108 a-d to load the respective mapped clips by sending suitableinstructions to the players 108 a-d, for instance.

In one example, one or more of the players 108 a-d may load a clipcontemporaneously while another one of the players 108 a-d plays out aloaded clip. In this context, the player controller 104 may monitor thestatus of one of the players 108 a-d to determine when the monitoredplayer finishes playing out its previously loaded clip. In response tomaking this determination, the player controller 104 may then cause themonitored player 108 a-d to load its next clip. This way, the players108 a-d collectively may be able to playout each clip indicated in therundown in order and without any undesired delay.

In some examples, the method may involve responsive to making thedetermination that the particular clip identifier is associated with theparticular property, causing the clip identified by the particular clipidentifier to be loaded into the player identified by the particularplayer identifier. In some instances, the method may involve responsiveto making the determination, causing the clip identified by theparticular clip identifier to be loaded into the player identified bythe particular player identifier proximate a time that the determinationis made. This may allow the clip identified by the particular clipidentifier to be played upon request and without a loading delay.Continuing with the example provided above, this may involve responsiveto the scheduling system 102 making the determination, the schedulingsystem 102 causing the clip identified by the clip identifier C₆ to beloaded into the player 108 d proximate a time that the scheduling system102 makes the determination.

Each of the players 108 a-d may be configured to play out a clip inresponse receiving a request. Likewise, the router 112 and/or theproduction switcher 114 may be configured to set a given input-to-outputmapping (e.g., to map one of its physical inputs to one of its physicaloutput) in response to receiving a request. As such, in response to oneof the players 108 a-d, the router 112, and the production switcher 114receiving suitable requests, the player 108 a-d may playout a clip thatgets channeled through the router 112 and the production switcher 114,and made part of the news program output on path 132.

The clip may be made part of the news program in a variety of way. Forinstance, the production switcher 114 may run a DVE (e.g., as indicatedin a rundown) that combines video from one or more physical inputs toproduce the news program. For example, the output video may include livevideo of a news anchor discussing a news story while a clip related tothat news story plays in a box over the news anchor's shoulder.

In one example, a user may provide the requests described above directlyto one of the players 108 a-d and/or to the router 112 and theproduction switcher 114. Alternatively, the scheduling system 102 may beconfigured to send such requests. This type of scheduling system 102 maybe configured to traverse a rundown one rundown entry at a time (e.g.,in response to a user pressing a spacebar key on a keyboard). Then, whenthe scheduling system 102 traverses a rundown entry that corresponds toa clip, the scheduling system 102 may automatically send (i) a requestto the one of the players 108 a-d assigned to the clip to play out theclip, (ii) and a request to the router 112 and/or the productionswitcher 110 to set the appropriate input-to-output mapping such thatthe clip may be used as part of the news program. In one example, thescheduling system 102 and/or another device (e.g., the player controller104) may cause the one of the players 108 a-d, the router 112, and theproduction switcher 114 to perform these functions at or about the sametime.

Notably, in some examples, the scheduling system 102 may send requeststo one of the players 108 a-d, the router 112, and/or the productionswitcher 114 via other entities. For instance, the scheduling system 102may send a request to the player controller 104, which in turn may sendthe request to the one of the players 108 a-d.

In one example, the scheduling system 102 may perform (or repeat) selectfunctions, such as the function at block 412 in response to thescheduling system 102 making a determination that the rundown has beeninitialized or edited. A rundown may be initialized (sometimes referredto as “MOS activated”) at a predetermined time and/or in response to arequest from a user, but in either case before the corresponding newsprogram is produced. This initialization process therefore allows thescheduling system 102 to assign players to clips in the manner describedabove before the news program is produced.

A rundown may also be edited at any time, including perhaps while thenews program is being produced. For example, consider the rundown 300 asshown in FIG. 3C. In one example, a user may edit the rundown 300 tomove the sixth rundown entry (i.e., corresponding to Clip 6) up twospots, thereby modifying the rundown 300 into a new state as shown inFIG. 3D. However, unlike the example provided above where thetraditional scheduling approach was employed, the modified rundown doesnot result in a single player identifier being assigned to the twoconsecutive clip identifiers C₃, C₆. As a result, Clips 3 and 6 may beplayed out without any intervening delay. For at least this reason, thedisclosed system and method improves upon the traditional approachdescribed above.

FIG. 5 is a flowchart showing functions of another example of thedisclosed method. At block 502, the method may involve accessing a firstlist that includes ordered clip identifiers C₁ . . . C_(n). For example,as shown in FIG. 3A, this may involve the scheduling system 102accessing the rundown 300 that includes ordered clip identifiers C₁ . .. C₇. In one example, the scheduling system 102 may access the rundown300 from a data storage.

At block 504, the method may involve accessing a second list thatincludes player identifiers P₁ . . . P_(x). For example, this mayinvolve the scheduling system 102 accessing a list of player identifiersP₁ . . . P₄, where each identifier identifies one of the players 108a-d. For instance, the player identifiers P₁, P₂, P₃, and P₄, mayidentify player 108 a, 108 b, 108 c, and 108 d, respectively. In oneexample, the scheduling system 102 may access the list of playeridentifiers P₁ . . . P₄ from a data storage.

At block 506, the method may involve making a determination that aparticular clip identifier from the clip identifiers C₁ . . . C_(n) isassociated with a particular property. For instance, this may involvethe scheduling system 102 making a determination that the clipidentifier C₆ is associated with a particular property (i.e.,characteristic), namely that the associated rundown entry includes areserved player request. Such a request may be provided (e.g., in theform of an “X” in an appropriate field of the rundown entry) by a userwhen creating the rundown so as to indicate that a player should bereserved for the purposes of being assigned to the associated clip. Insome instances, the user may indicate this request when the userdetermines that there is a strong likelihood that that clip will berequested to be played out with little or no notice. Note that in someinstances, the user may indicate this request before the clip is evenavailable (in which case the clip identifier may effectively serve as aplaceholder). Note that other properties and/or other manners ofindicating a reserved player request may also be considered or used inconnection with the function at block 506.

At block 508, the method may involve responsive to making thedetermination, assigning to the particular clip identifier, a particularone of the player identifiers P₁ . . . P_(x). For instance, as shown inFIG. 3B, this may involve responsive to making the determination thatthe rundown entry associated with the clip identifier C₆ includes areserved player request, assigning the player identifier P₄ to the clipidentifier C₆. Note that the player identifier P₄ is used merely as anexample. In another example, a different player identifier from theplayer identifiers P₁ . . . P₄ may be used as desired.

At block 510, the method may involve assigning to each clip identifierC₁ . . . C_(n) except for the particular clip identifier, a respectiveone of the player identifiers P₁ . . . P_(x) except for the particularplayer identifier, wherein the respective ones of the player identifiersare selected in an ordered and looping fashion. For instance, as shownin FIG. 3C, this may involve assigning to each clip identifier C₁ . . .C₅ and C₅ a respective one of the player identifiers P₁ . . . P₃,wherein the respective ones of the player identifiers are selected in anordered and looping fashion. More particularly, this may involveassigning player identifiers to clip identifiers such that: C₁ isassigned P₁, C₂ is assigned P₂, C₃ is assigned P₃, C₄ is assigned P₁, C₅is assigned P₂, and C₇ is assigned P₃.

At block 512, the method may involve for each of the clip identifiers C₁. . . C_(n), causing a player identified by the one of the playeridentifiers P₁ . . . P_(x) assigned to that clip identifier to load aclip identified by that clip identifier. For instance, this may involvefor each of the clip identifiers C₁ . . . C₇, the scheduling system 102causing a player identified by the one of the player identifiers P₁ . .. P₄ assigned to that clip identifier to load a clip identified by thatclip identifier.

VII. Example Variations

While one or more functions have been described as being performed bycertain devices or entities (e.g., the scheduling system 102), thefunctions may be performed by any device or entity, such as thoseincluded in the NPS 100 described above.

For instance, rather than the scheduling system 102 assigning playeridentifiers to clip identifiers, the scheduling system 102 may send clipidentifiers to the player controller 104 such that the player controller104 may assign player identifiers to clip identifiers. Then, the playercontroller 104 may send to the scheduling system 102, an indication ofsuch assignments such that the scheduling system 102 may edit therundown accordingly. In another example, the player controller 104 mayperform some or all of the functions described above.

As noted above, while examples of the disclosed method have beendescribed in connection with an NPS and a news program, examples of themethod may be implemented in other environments and/or in connectionwith other programs or other types of video. For instance, in oneexample, the disclosed method may be implemented in connection with amaster control system. A master control system may facilitate thebroadcast of a program according to a traffic schedule (sometimesreferred to as a “traffic log”), which specifies an order of events thatrelate to a broadcast for a given station during a given time period.According to one example variation, in connection with the methoddescribed above, rather than being part of a rundown, the first list maybe part of a traffic schedule for a program broadcast. In this instance,a block of clip identifiers may correspond to a block of the programbroadcast, and another block of clip identifiers may correspond toanother block of the program broadcast. The blocks of clip identifiersmay be separated from each other by a particular portion of the trafficschedule, such as a reference to a particular video source, forinstance.

Also, the functions need not be performed in the disclosed order,although in some examples, an order may be preferred. And not allfunctions need to be performed to achieve the desired advantages of thedisclosed system and method, and therefore not all functions arerequired.

It should also be noted that the variations described in connection withselect examples of the disclosed system and method may be applied to allother examples of the disclosed system or method. For instance, thevariations discussed in connection with the example method shown in FIG.4 are also applicable to the example method shown in FIG. 5.

Further, while select examples of the disclosed system and method havebeen described, alterations and permutations of these examples will beapparent to those of ordinary skill in the art. Other changes,substitutions, and alterations are also possible without departing fromthe disclosed system and method in its broader aspects as set forth inthe following claims.

1. A computing device configured for performing a set of functions foruse with multiple video players, the set of functions comprising:accessing a first list that includes ordered clip identifiers C₁ . . .C_(n); accessing a second list that includes a player identifier P_(q);accessing a third list that includes player identifiers P₁ . . . P_(x);making a determination that a particular clip identifier from the clipidentifiers C₁ . . . C_(n) is associated with a particular property;responsive to making the determination, assigning to the particular clipidentifier, the player identifier P_(q); assigning to each clipidentifier C₁ . . . C_(n) except for the particular clip identifier, arespective one of the player identifiers P₁ . . . P_(x), wherein therespective ones of the player identifiers are selected in an ordered andlooping fashion; and for each of the clip identifiers C₁ . . . C_(n),causing a video player identified by the one of the player identifiersP_(q) or P₁ . . . P_(x), assigned to that clip identifier to load a clipidentified by that clip identifier.
 2. The computing device of claim 1,wherein the first list is part of a traffic schedule for a programbroadcast.
 3. The computing device of claim 1, wherein the first list ispart of a rundown for a news program.
 4. The computing device of claim3, wherein making the determination comprises using the rundown todetermine that the particular clip identifier is associated with theparticular property.
 5. The computing device of claim 3, wherein makingthe determination comprises making a first determination, the methodfurther comprising: making a second determination that the rundown hasbeen initialized, wherein assigning to each clip identifier C₁ . . .C_(n) except for the particular clip identifier, a respective one of theplayer identifiers P₁ . . . P_(x) occurs in response to making thesecond determination.
 6. The computing device of claim 3, wherein makingthe determination comprises making a first determination, the methodfurther comprising: making a second determination that the rundown hasbeen edited, wherein assigning to each clip identifier C₁ . . . C_(n)except for the particular clip identifier, a respective one of theplayer identifiers P₁ . . . P_(x), occurs in response to making thesecond determination.
 7. The computing device of claim 1, furthercomprising: for each of the clip identifiers C₁ . . . C_(n), causing theplayer identified by the one of the player identifiers P_(q) or P₁ . . .P_(x) assigned to the that clip identifier to play out the respectiveloaded clip.
 8. The computing device of claim 1, wherein the playercomprises one of a video player device and a software-based video playerexecuting on a computing device.
 9. The computing device of claim 1,further comprising: responsive to making the determination, causing theclip identified by the particular clip identifier to be loaded into theplayer identified by the particular player identifier proximate a timethat the determination is made.
 10. A computing device configured forperforming a set of functions for use with multiple video players, theset of functions comprising: accessing a first list that includesordered clip identifiers C₁ . . . C_(n); accessing a second list thatincludes player identifiers P₁ . . . P_(x); making a determination thata particular clip identifier from the clip identifiers C₁ . . . C_(n) isassociated with a particular property; responsive to making thedetermination, assigning to the particular clip identifier, a particularone of the player identifiers P₁ . . . P_(x); assigning to each clipidentifier C₁ . . . C_(n) except for the particular clip identifier, arespective one of the player identifiers P₁ . . . P_(x) except for theparticular player identifier, wherein the respective ones of the playeridentifiers are selected in an ordered and looping fashion; and for eachof the clip identifiers C₁ . . . C_(n), causing a video playeridentified by the one of the player identifiers P₁ . . . P_(x) assignedto that clip identifier to load a clip identified by that clipidentifier.
 11. The computing device of claim 10, wherein the first listis part of a rundown for a news program.
 12. The computing device ofclaim 10, wherein the first list is part of a traffic schedule for aprogram broadcast.
 13. A non-transitory computer-readable mediumincluding a set of program instructions, that when executed, causeperformance of a set of functions comprising: accessing a first listthat includes ordered clip identifiers C₁ . . . C_(n); accessing asecond list that includes player identifiers P₁ . . . P_(x), whereineach player identifier P₁ . . . P_(x) corresponds with a respective oneof the players; making a determination that a particular clip identifierfrom the clip identifiers C₁ . . . C_(n) is associated with a particularproperty; responsive to making the determination, assigning to theparticular clip identifier, a particular one of the player identifiersP₁ . . . P_(x); and assigning to each clip identifier C₁ . . . C_(n)except for the particular clip identifier, a respective one of theplayer identifiers P₁ . . . P_(x) except for the particular playeridentifier, wherein the respective ones of the player identifiers areselected in an ordered and looping fashion.
 14. A non-transitorycomputer-readable medium including a set of program instructions, thatwhen executed, cause performance of a set of functions comprising:accessing a first list that includes ordered clip identifiers C₁ . . .C_(n); accessing a second list that includes player identifier P_(q),wherein the player identifier P_(q) corresponds with one of the playersin the first set of players; accessing a third list that includes playeridentifiers P₁ . . . P_(x), wherein each player identifier P₁ . . .P_(x) corresponds with a respective one of the players in the second setof players; making a determination that a particular clip identifierfrom the clip identifiers C₁ . . . C_(n) is associated with a particularproperty; responsive to making the determination, assigning to theparticular clip identifier the player identifier P_(q); assigning toeach clip identifier C₁ . . . C_(n) except for the particular clipidentifier, a respective one of the player identifiers P₁ . . . P_(x),wherein the respective ones of the player identifiers are selected in anordered and looping fashion; and for each of the clip identifiers C₁ . .. C_(n), causing the one of the players identified by the one of theplayer identifiers P_(q) or P₁ . . . P_(x) assigned to that clipidentifier to load a clip identified by that clip identifier.
 15. Thenon-transitory computer-readable medium of claim 14, wherein the firstlist is part of a traffic schedule for a program broadcast.
 16. Thenon-transitory computer-readable medium of claim 14, wherein the firstlist is part of a rundown for a news program.
 17. The non-transitorycomputer-readable medium of claim 16, wherein making the determinationcomprises using the rundown to determine that the particular clipidentifier is associated with the particular property.
 18. Thenon-transitory computer-readable medium of claim 16, wherein making thedetermination comprises making a first determination, the set offunctions further comprising: making a second determination that therundown has been initialized, wherein assigning to each clip identifierC₁ . . . C_(n) except for the particular clip identifier, a respectiveone of the player identifiers P₁ . . . P_(x) occurs in response tomaking the second determination.
 19. The non-transitorycomputer-readable medium of claim 16, wherein making the determinationcomprises making a first determination, the set of functions furthercomprising: making a second determination that the rundown has beenedited, wherein assigning to each clip identifier C₁ . . . C_(n) exceptfor the particular clip identifier, a respective one of the playeridentifiers P₁ . . . P_(x) occurs in response to making the seconddetermination.
 20. The non-transitory computer-readable medium of claim16, the set of functions further comprising: for each of the clipidentifiers C₁ . . . C_(n), causing the player identified by the one ofthe player identifiers P_(q) or P₁ . . . P_(x) assigned to the that clipidentifier to play out the respective loaded clip.